約 4,290,861 件
https://w.atwiki.jp/try-to-ruby/pages/5.html
Model作成時に守ること。 ※ruby script\generate Xxxx モデル名にはテーブル名と同一の単語の単数形を用いる モデル名の先頭の文字は大文字にする _ などの記号は用いない Xxxxはテーブルの単数形。ってことは、テーブルはXxxxsと複数形で作成してやる。 名前 コメント
https://w.atwiki.jp/ayikat/pages/78.html
Selectの必須選択解除 Domain owner(nullable true) View noSelection="[ null --- ]" select div class="fieldcontain ${hasErrors(bean horseInstance, field stable , error )} required" label for="stable" g message code="horse.stable.label" default="Stable" / span class="required-indicator" * /span /label g select id="stable" name="stable.id" from="${gapp.Stable.list()}" optionValue="stableName" optionKey="id" required="" value="${horseInstance?.stable?.id}" noSelection="[ null --- ]" class="many-to-one"/ /div ※StableController def list(Integer max) { params.max = Math.min(max ? 100, 100) [stableInstanceList Stable.list(params), stableInstanceTotal Stable.count()] }
https://w.atwiki.jp/jasagiri/pages/35.html
認定制度 http //www.infoq.com/jp/articles/rubyexam http //projects.netlab.jp/ruby-test/index.html http //itpro.nikkeibp.co.jp/article/COLUMN/20080115/291042/ http //blog.champierre.com/archives/723 http //d.hatena.ne.jp/yuichi_katahira/20090406/1239025810 rubygems GitHubを新しいレポジトリに追加する。 gem sources -a http //gems.github.com/ リファクタリング 練習問題 http //www.oiax.jp/rails/ruby-ex/refactoring_1.html RFactor http //github.com/fabiokung/rfactor/tree/master http //www.infoq.com/jp/news/2009/03/rfactor reek http //github.com/kevinrutherford/reek/tree/master Rufus http //rufus.rubyforge.org/rufus-treechecker/files/README_txt.html http //www.happiese.com/system/refactoring.html http //www.confrage.com/eclipse/ rubigen http //rubigen.rubyforge.org/
https://w.atwiki.jp/ohden/pages/823.html
rails command備忘録 CentOS 7.3 Ruby 2.1.4 Rails 5.1.3 新規作成 $ rails new PJ_NAME 新規作成 version指定 $ rails _VERSION_ new PJ_NAME e.g.) $ rails _5.1.3_ new HogeFugaPiyo 更新日: 2017年08月15日 (火) 02時19分41秒 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/sami1127/pages/9.html
サボり続けていたので、あわてて続きの勉強をば。。。 rubyがまぁなんとなーく読み進んでいる感じなので、Railsちょいと勉強しとかないと、ってことで初Railsプロジェクト作成。 参考にしたサイトはココ↓ http //abiru.jp/blog/archives/2007/08/ruby_on_rails.html なかなかRailsのちゃんとしたサイト無いのね。。 RadRailsで新規作成。 で、Action作りたいが、 ruby script/generate controller hello input greeting に該当する機能どれっ?! RadRailsのそもそもの使い方がわかんねー。。 なので、プロンプトでやっちゃいました。。(汗 で、サーバー立ち上げて、Let sアクセス。 http //localhost 3000/hello/input ぅわー見事にえらってる。 しかもなんかsqlite3がどうのこうのって。。。 で、エラー文ひっかけてみたら、どうやらsqliteが無いから出ているらしい? でも入ってるDBがMySQLなんですけど。。しかもMySql使うつもりなんですけど。。sqliteなんて使わないし。。 なので、どうやったらMySql使うようになるんだろう、と探してみたところ、どうやらプロジェクト作るときにそういう設定しないといけないらしい。 …探したけどRadRailsで新規作成プロジェクトでそんな指定できないんですけどー? なので、これまたプロンプトで作成してRaiRailsから読み込むように。。 rails -d mysql hello RadRailsでhelloで新規作成すれば自動的に作成されているPJ見に行ってくれるみたい。 さて、これでやっとMySqlで動くPJが出来たはず。。 再度アクセス。 …してみたけど、今度はmysqlがないとか何とか。。 ぇーなんでーインストールしてあるよー もしかしてなんかパスとかおかしいのか?と思ってワークスペースホーム\hello\configのdatabase.ymlでパスを設定したりしたけど、ダメ。。。 再度エラー文をひっかけてみたら… mysql使えるようにするプラグインインストールしてなかったみたいw(てへ☆ ということで、これもgemでインストール。 gem install mysql さーて、これで動くだろー で、3度目のアクセス。 ・・・今度は何っ(えらった エラー文変わったけど、なんか今度はMySqlへのアクセスがどうのって。。。 エラー文ひっかけてみると、RailsのエラーじゃなくてMySqlのエラーとして出てくる。。 なんだ?mysqlの設定おかしいのか? ためしにプロンプトでMySQLに入ってみることに。 えらった。しかもブラウザで出てるエラー文と同じ。。 お前かぁー でも何でだ。。。ちゃんとインストールしてあるし、mysql動かした覚えがあるけど。。 なのでスタート→全てのプログラム→mysql→mysqlコマンドラインプログラム?起動。 これだと…入れる。 んー??なんでー??しかもパス設定してなーい?? おかしいな。。。って事で調べてみると、どうやら初期設定してなかったらしいw(ぉぃ ってことで、ここからパスワード設定。 SET PASSWORD FOR root=PASSWORD( ぱすわーど ); …えらった。。。何でっ(怒 なんかそんなカラム無いとか、そんな事言われてんですけどっ で、引っ掛けてみたら、どうやらユーザー指定をしないといけないらしい。。 SET PASSWORD FOR root@localhost=PASSWORD( ぱすわーど ); 出来たっ まったく世話のかかる。。。 で、4度目のアクセスっ ・・・ できたー! 画面に「Find me in app/views/hello/input.html.erb」って出たー! やたー! これではれてRailsPJ作れる。。。 一度ちゃんとRadRails使い方調べないとダメかな。。。
https://w.atwiki.jp/kurails/pages/15.html
[Rails3.0+] プロジェクトの作成 プロジェクト作成したいディレクトリまでcdコマンドを使って移動する ※プロジェクト名には複数形とか,プログラム言語の予約語とかは使わない方がいい rails new (プロジェクト名) ※今後,下記の通り読み替えて下さい. RAILS_ROOT - プロジェクトを作ったディレクトリです.appやconfigがあるところ データベース,MVCの作成 rails g scaffold (作りたいテーブルの名前を全部小文字・単数形) (挿入したいカラムの名前と型) 例 rails g scaffold user user_name string age integer user_note text Rails3.0+では,1.2と違い,scaffoldがテーブル生成のマイグレーションファイルやMVCを全部作ってくれます. 実際にデータベースに反映する rake db migrate サーバ起動 RAILS_ROOTで, rails s http //localhost 3000にアクセス ちゃんとみれたら http //localhost 3000/(データベースの名前を全部小文字・複数形で)
https://w.atwiki.jp/startruby/pages/17.html
Rubyらしさ 文字列で遊ぼう! シンプルな文字列は を使う string = これは文字列です。 ん~~、普通! ちょっとフォーマットしたい時には""を使う バックスラッシュ記法でコントロール文字を埋め込みたい 変数の値を文字列にフォーマッティングしたい こんな用途に。 age = 18 string = "これは\n文字列です。\nボク永遠の#{age}歳!!" "#{}"の中は、かならず「式」として評価されるので、変数名がそのまま表記できる。 ちなみに、単なる計算式でもOK 主なバックスラッシュ記法 \t タブ \n 改行 \r キャリッジリターン \f 改ページ \b バックスペース \a ベル \e エスケープ \s 空白 \nnn 8 進数表記 \xnn 16 進数表記 \cx コントロール文字 (x は ASCII 文字) \C-x コントロール文字 (x は ASCII 文字) \x 文字 x そのもの 長文!ヒアドキュメント たとえば、HTMLのテンプレートな部分とか… たとえば、メールの長い典型文とか… そんな時はヒアドキュメント STRING = "EOS" これは 文字列です。 ボク永遠の#{age}歳!! EOS ちなみに、 EOS ~ EOS と書けば、 囲みの文字列と同等の扱いになり、 "EOS" ~ EOS と書けば、""囲みの文字列と同等の扱いになる。 ここから先の前提知識:ブロック ブロックとは? スコープの最小単位 do 実行文 end または { 実行文 } {~}の方がdo~endより少しだけ優先度が高い ブロック付きメソッド(いわゆるクロージャ) 使い方 def hoge(ary) ret = "result " ary.each do |i| ret += i end return ret end または def hoge(ary) ret = "result " ary.each { |i| ret += i } return ret end hogeメソッドからaryのeachを呼び出す eachメソッド内から、ブロックが呼ばれる|i|にeachからの引数(配列の内容)が渡る retに、渡された引数がどんどん連結される aryの内容をすべて連結した文字列を返す イテレータ 10回ループを普通にやると for i in [0..9] do p i end ブロック付きメソッドを使うと [0..9].each do |i| p i end …あんまり変わらないかな? でも、じつはこんなやり方も 10.times do |i| p i end for文より自然っぽくない? open/close制御 ファイルを開いて閉じるを普通にやると file = nil begin file = File.open("hoge.txt") 実行文 ensure file.close unless file == nil end ブロック付きメソッドを使うと File.open("hoge.txt") do |file| 実行文 end 何が便利かって、JavaやC#で起きがちな「クローズするためだけに延々とtry-finally記述が感染していく」がないこと! 例外ブロックも最適化できる! ブロック付きメソッドの作り方 def hoge 実行文 yield 実行文 end 引数があるときは def hoge 実行文 yield(item) 実行文 end 動性の高いRubyのリフレクション リフレクションという認識すらないくらい、「普通のこと」になっている。 これもまた、動的言語で「すべてがオブジェクト」の世界観が成せる技。 次のような動的拡張が可能になっている。 既存のクラスにメソッドを拡張する 既存のArrayクラスにhogeというメソッドを追加する場合、次のように書けば良い。 class Array def hoge end end これ、なんと組み込みクラスにも可能。 もちろん、既存のメソッドを書き換えることも可能! 既存のオブジェクトにメソッドを拡張する クラスにメソッドを拡張すると、なにかとメンドクサイ問題が出る場合がある。 そんな時は、対象となるオブジェクトにだけメソッドを拡張する。 array = [] def array.hoge end いちいち一個ずつメソッドを書き換えたり、メンドクサくない?って時にはMixIn モジュールとは「機能的に同じものをまとめて定義しておく」機能のこと。 クラスとは違い、継承ができないし、インスタンスの生成もできない。 「GUIでのコントローラをモジュールで表現」のような使い方をする。 「そのクラスの直接的な機能じゃないけれど、副次的に必要になるユーティリティ的機能」などをモジュール化しておくと、なにかと便利。 module KeyNameListItem def value @name = unless defined? @name @key = @name unless defined? @key if (@key == @name) return @name end return "#{@key} - #{@name}" end attr_reader key end というモジュールをつくっておいて、GUIで「このクラスをリスト表示したい!」というときにさらっと class Section include KeyNameListItem end というように、クラス再定義で組み込んでしまえる。 もちろん、オブジェクトにもMixIn section = Section.new section.extend KeyNameListItem これらの再定義をうまく使っていくと、JavaやC#にありがちなXxxUtilとか、XxxHelperとかいったクラスが必要ないという事に気づくはず! さあ!いま、Rubyという自由の羽を得た!! 飛び立とう!! めくるめくオブジェクトの世界へ!!
https://w.atwiki.jp/rubyocho/pages/27.html
Railsは、どうやって動いているか サーバの起動 環境(動作モード)によって異なる初期化処理 route.rb サーバの起動 $ ./script/server WEBrick(Rubyサーバ)が3000番ポートで起動 configディレクトリ environment.rb 擬似変数「__FILE__」。File.dirname関数でDIR名を取り出す。File.join(a,b)は、aとbとの名前を結合。 boot.rbが呼び出される Railsの初期化:初期化オプションは、do |config| end ブロックに記述する。 様々な初期化を行う。例:セッションをDB保管する boot.rb Rils本体(Railsクラス)が読み込まれる Rilities: ActiveRecordやActiveSupportなどのフレームワークを呼び出す 環境(動作モード)によって異なる初期化処理 development、test、production config/environmentsに任意の環境名でファイルを作れば、自分用の実行環境ができる route.rb Webブラウザのユーザが入力したURLと、それに応じて起動するコントローラとの対応付け(ルーティング)を記述したファイル map.connectメソッドでURLと、コントローラ/アクションを対応付け 初期化時に、route.rbを実行すると、ActionController Routing Routesというオブジェクトの内部に、ブロック「do |map| ~~end」が登録される。 Webアクセスがある毎に、このオブジェクトがブロックを実行し、該当のコントローラを見つける。
https://w.atwiki.jp/soscomp/pages/35.html
このwiki内のRuby関連のページへのインデックスです Ruby Introduction 逆引きRuby 逆引きRuby/SDL Ruby on Rails関連メモ 逆引きRuby4Skype total - today - yesterday -
https://w.atwiki.jp/eyes_33/pages/63.html
Railsのプラグインは、素晴らしい! ホントにいっぱい出てるから、以下のサイトを参考にしていこう!! Ruby Toolox:https //www.ruby-toolbox.com/ 特にここの「Category」のとこにある、機能別ランキングで人気のプラグインをゲット! まあ、以下でいくつかのプラグインをご紹介ね! will_paginnate ページング用のプラグインね! インストールは、こんな感じで! gem install will_paginate -v 3.0.2 つか、最新の3.0.3は、以下のエラーが出ては入らんかった…。きっと変な文字コードでも入ってるのかな? ERROR While executing gem ... (ArgumentError) invalid byte sequence in Windows-31J あとは、Webサーバを再起動して、BookController#indexをallじゃなくて、orderとpaginateを使うように修正して、 def index @books = Book.order( published DESC ).paginate( page = params[ page], per_page = 5) end テンプレートのテーブルの下あたりにこんな感じで書けば、 %= will_paginate @books, previous_label = 前ページ , next_label = 次ページ % こんな感じのHTMLが出て、ページングできると。 div class="pagination" span class="previous_page disabled" 前ページ /span em class="current" 1 /em a rel="next" href="/books?locale=ja page=2" 2 /a a href="/books?locale=ja page=3" 3 /a a class="next_page" rel="next" href="/books?locale=ja page=2" 次ページ /a /div 見た目は、こんな感じで、前ページはリンクなしって感じだねー 前ページ 1 2 3 次ページ devise 認証用のプラグインだね! メールでの確認とか、OpenID対応とか、結構、高機能! この辺を参考に、入れればOK! Rails3 認証エンジン「devise」 Rails3でログイン認証(1) deviseインストール編 i18n_generators これは、Scaffoldの日本語化用プラグインですね。 まあ、詳細はコッチで! Typus こいつは、管理者用画面の生成用プラグインだ。まだ、使ってないけどw Ruby on Railsの管理者画面を生成する「Typus」 でも、こういうのあると、余計なこと考えなくていいから、楽だなー -